There are several hundred million wireless/cellular telephone customers in the world today. Within the United States, wireless/cellular service is offered by cellular service providers, by the regional Bell companies, and by the national long distance operators. The enhanced competition has driven the price of wireless service down to the point where it is affordable to a large segment of the population.
Many wireless service providers offer their customers a selection of wireless telephone handsets from different wireless telephone manufacturers. However, the wireless service providers generally also try to establish a particular look-and-feel for their wireless telephone handsets. To accomplish this, a wireless service provider may require different handset manufacturers to customize the graphical user interface (GUI) of the handsets used by the service provider's customers, so that all handsets, even ones from different manufacturers, present the customers with the same or very similar screen menus, program message strings, icons, audible sounds, and manner of operation. Thus, a cell phone used by one AT&T® customer generally has the same look-and-feel as a cell phone used by another AT&T® customer, even though one cell phone may be manufactured by NOKIA® and the other cell phone may be manufactured by SAMSUNG®. The same can be said about the cell phones used by customers of SPRINT®, PRIMECO®, and others.
However, whenever a new handset is manufactured or customized for a different wireless service provider, or a new feature is added to an existing handset, a wireless handset manufacturer must expend significant resources to modify, compile, and test the operating system software that controls the wireless telephone handset. Often, this cycle of modify-compile-test must be repeated several times before an acceptable quality and look-and-feel is achieved. The entire process is costly and time consuming and requires close cooperation between the wireless handset manufacturer and the wireless service provider that specifies the changes that it wants made to the GUI for its customer cell phones.
U.S. patent application Ser. No. 09/551,112 incorporated by reference above discloses a wireless communication device in which the functions of the basic operating system and the graphical user interface (GUI) are partitioned. The basic operating system operates the GUI by retrieving data defining the GUI from a GUI configuration file. The GUI may be readily modified by editing the definitional data in the GUI configuration file.
When the GUI parameters (i.e., menus, program strings, bitmaps, icons, animations, audio data files, etc.) are loaded into the handset, the handset must be able to determine if the data being downloaded is compatible with the current software on the handset. Each piece of GUI parameter data (e.g., menu entry, program strings, bitmaps, icons, animations, and the like) is identified by a unique human readable textual name. This textual name is unsuitable for processing by the handset software as it is inefficient. Each textual name is therefore assigned a unique positive integer value. The integer value is used by the handset software to refer to the GUI parameter data. A resource compiler assigns the integers to the textual names.
However, when a new GUI parameter data is added, the resource compiler may assign a unique integer to the new resource. This action may change the numbering of existing items. If the resulting data is downloaded to the handset, the handset has no way of knowing that the numbering has changed. This may result in an error in the operation of the handset. Maintaining a count of GUI parameter data is inaccurate, since the handset cannot distinguish the case of deleting a GUI parameter data followed by addition of a new GUI parameter data.
Therefore, there is a need for improved wireless devices that use a graphical user interface that is simple and inexpensive to modify. In particular, there is a need for apparatuses and methods for ensuring integrity of GUI parameter data used by a data-driven user interface of a wireless mobile station.